最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何从另一个函数发送请求承诺解析响应,并且该函数是从Node.js中的请求承诺内部调用的]] << [

运维笔记admin8浏览0评论

如何从另一个函数发送请求承诺解析响应,并且该函数是从Node.js中的请求承诺内部调用的]] << [

如何从另一个函数发送请求承诺解析响应,并且该函数是从Node.js中的请求承诺内部调用的]] << [

实际情况是我想从test2()函数返回test4()的请求承诺响应。因为在test4()中完成了一些独立的计算,所以test2()无法等待test3()test4()所以我再次用状态标志从test2()调用test4(),但问题是第一个请求承诺在内存堆栈中被覆盖。是否可以从另一个函数而不是该函数发送请求承诺响应。

var status = false; (async () => { var res = await test1(); console.log('Hi'); console.log(res); })(); async function test1() { console.log('Call to test2'); var restest1 = await test2(); console.log('All Finished', restest1); return restest1; } function test2() { return new Promise(async resolve => { if (status) { resolve('success'); } else { setTimeout(function () { console.log('Call to test3'); test3(); }, 5000); } }); } function test3() { test4(); } function test4() { status = true; test2(); console.log('test4 finished'); }

问题是console.log('Hi'); console.log(res);不起作用

实际情况是我想从test4()函数返回test2()的请求承诺响应。因为在test4()中完成了一些独立的计算,而test2()不能等待...

回答如下:根据您的描述和所需的输出,我有一个基于您当前代码结构的快速修复。这个想法是传递resolve函数,直到您真的要调用它为止。因此,当您通过初始解析函数调用test4内部的test2时,实际上是原始的诺言得以解析并返回。它回答了您的问题还是我想念您的意思?
发布评论

评论列表(0)

  1. 暂无评论