Как обращаться с функцией, которая возвращает обещание - PullRequest
0 голосов
/ 18 января 2019

Я хочу объявить разрешенное значение Обещания из библиотеки следующим образом.

// lib.js
exports.foo = function(){
    return new Promise(..)
}

// main.js
import { foo } from "./lib"

let x = await foo()

Ожидание не работает, и, кажется, все, что я пробовал, приводит к этой ошибке: UnhandledPromiseRejectionWarning: Unhandled promise rejection

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Вы просто даете конструктору обещания function(resolve,reject){ /* your code here with resolve(value); and reject(error);*/ } в качестве параметра, чтобы затем вызвать его и присвоить значение x, которое вы вызываете var x; foo().then(function(value){ x=value; } ); //here you can optionally add .catch(function(error){ your error catch imp here}); if you want to catch your error

0 голосов
/ 18 января 2019

См. Ниже, поскольку CertainPerformance упоминается в комментариях, вы не можете использовать await на верхнем уровне. Кроме того, чтобы использовать await, необходимо добавить ключевое слово async в функцию, в которой вы await разрешаете значение Promise.

.
// lib.js
exports.foo = function() {
    return new Promise(..)
};

// main.js
import { foo } from "./lib";

function async main() {
    let x = await foo();
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...