0

问题描述

在开发node.js应用时,因为要用hsf服务连接java后端接口,因此定义了个co模块去访问hsf服务并获取返回值,但我需要再外层处理这个返回值,我如何把这个变量获取到呢?

问题出现的环境背景及自己尝试过哪些方法

试过声明global全局变量,但外层依然接收不到

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
co(function* () {

  const res = yield client.invoke({
     id: 'com.alibaba.middleware.hsf.CreateKubernetesPod',
     group: 'HSF',
     method: 'createKubernetesPod',
     args: [],
  });
  ctx.task_id = res;

}).catch(err => console.error(err.stack));
ctx.task_id = res;
处理数据的位置

你期待的结果是什么?实际看到的错误信息又是什么?

希望能在处理数据的位置获取到返回的res值,请问有办法么?望各位大佬不吝赐教!

8月15日提问
1 个回答
0

已采纳

早就已经不需要co了,建议你看下 promise 与 async/await 。

async f() {
    const res = await client.invoke({...})
    return res
}
ctx.task_id = await f();

撰写答案

推广链接