javascript - Får feilen TypeError: Promise.any er ikke en funksjon


Jeg lærer Promise.any fra følgende nettsted. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/any IDE-en viser ingen feil, men når jeg kjører med yarn-kommandoen, får jeg følgende feil.

E:\typescript-2020-1\promise-usages-1\lib\basics1\promise-any.service.js:18                                                
        Promise.any([                                                                                                      
                ^                                                                                                                                                                              
TypeError: Promise.any is not a function                                                                                   
    at PromiseAnyService.validateAll_Type1 (E:\typescript-2020-1\promise-usages-1\lib\basics1\promise-any.service.js:18:17)
    at Object.<anonymous> (E:\typescript-2020-1\promise-usages-1\lib\test.js:35:7)                                         
    at Module._compile (internal/modules/cjs/loader.js:1137:30)                                                            
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)                                              
    at Module.load (internal/modules/cjs/loader.js:985:32)                                                                 
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)                                                       
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)                                    
    at internal/main/run_main_module.js:17:47                                                                              
 ERROR  Command failed with exit code 1.      

                                                                         

Jeg har skrevet den enkle koden for å teste. Vennligst hjelp meg med hvor jeg gjør feil i en Typescript-klasse.

const promise1 = Promise.reject(0);
const promise2 = new Promise((resolve) => setTimeout(resolve, 100, 'quick'));
const promise3 = new Promise((resolve) => setTimeout(resolve, 500, 'slow'));

const proms = [promise1, promise2, promise3];

Promise.any(proms).then((result) => console.log(result));

For øyeblikket bruker jeg NodeJs 12 og Typescript 3.8.3

Svar #1

Metoden Promise.any ble støttet i node.js 15.0.0, din node.js-versjon er gammel, så du kan oppdatere den og prøve igjen.

Svar #2

Etter min mening er det bedre å holde seg til det som støttes i ditt nåværende oppsett, og det ser ut til at esnext.promise ikke er der ennå, men:

Jeg er i en situasjon hvor jeg flytter en stor live-kodebase bort fra Bluebird, og denne npm-modulen gjorde det for meg (jeg bruker node v12.12.0): https://www.npmjs.com/package/promise.any

Relaterte artikler