嘿等一下 - 有一个未决的承诺 - 或者是什么?

时间:2018-01-17 22:32:35

标签: javascript async-await es6-promise

我试图以非异步方式使用promise函数的结果。摘要的计算需要多长时间并不重要 - 我只是希望执行代码等待(阻塞,休眠,停止......),直到承诺的结果为止:

async function sha1(str) {
    const r = await crypto.subtle.digest(`SHA-1`, new TextEncoder().encode(str));
    return Array.prototype.map.call(new Uint8Array(r), x => x.toString(16).padStart(2, 0)).join(``);
}

function test(str) {
    return sha1(str);
}

console.log(1);
console.log(test("abc"));
console.log(3);
console.log(test("def"));

只要我不在调试器中详细说明,生成的控制台日志总是在"待定"状态。

[Log] 1 
[Log] Promise {status: "pending"}
[Log] 3 
[Log] Promise {status: "pending"}

打开细节后,每个函数调用都有正确的结果:

[Log] Promise
result: "a9993e364706816aba3e25717850c26c9cd0d89d"
status: "resolved"
...

我很确定我会得到一个重复的问题"标签 - 但我找不到令人满意的答案。对于那个很抱歉。 大多数示例仅使用输出函数进行演示,但我需要从第二个函数返回值 ...

0 个答案:

没有答案