如何处理返回Promise的函数

时间:2019-01-18 01:24:11

标签: javascript typescript es6-promise

我想从像这样的库中声明Promise的可解析值。

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

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

let x = await foo()

等待不起作用,似乎我尝试的所有操作均导致此错误: UnhandledPromiseRejectionWarning: Unhandled promise rejection

2 个答案:

答案 0 :(得分:1)

请参见下文,如评论中提到的“某些性能”所述,您尚不能在顶层使用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();
};

答案 1 :(得分:0)

您只需给promise构造函数一个 以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