【发布时间】:2020-02-15 14:21:38
【问题描述】:
我正在使用 nexmo 进行两步身份验证,我计划通过 graphl 突变来实现这一点,因为我有 graphql API 我无法获取 requestId 值
Mutation: {
signUpFirstStep: async ( parent, { number }, { models, secret }) =>
{
const response = nexmo.verify.request({
number: number,
brand: 'Nexmo',
code_length: '4'
}, (err, result) => {
const requestId = result.request_id
return requestId
});
console.log(response); //right here I have undefined
}
}
我想要的只是获取 requestId 值以在突变中返回它
【问题讨论】:
-
首先,您在其范围之外引用了
response,因此是undefined。其次,您正在处理异步函数,响应是错误或结果。你登录err和result了吗? -
@JDunken 是的,ofc,但我不知道如何让价值超出范围
-
在函数外声明变量,如果有结果在回调中设置。
-
请注意 GraphQL.js 依赖于 Promises,你不应该混合 Promises 和回调。如果
nexmo库不支持 Promise,则应将回调包装在 Promise 中。请参阅常见场景 #6 here。 -
@DanielRearden 感谢您的回复,它帮助了 ;)
标签: javascript async-await graphql apollo-server graphql-mutation