And*_*nto 0 rpc node.js async-await grpc graphql
我试图在函数中调用一个简单的 grpc 请求,但我不知道如何等待响应并将其传递到 grpc 调用之外。
应该是这样的:
Client: (parent, args, context, info) =>{
      client.Get({thing, objects, properties}, function(err, response) {
            //how to return the response outside?
          });
      //await for the response function.
};
Run Code Online (Sandbox Code Playgroud)
是否可以在 client.Get 函数之外以某种方式返回响应?有人有一些建议吗?谢谢您的建议!
sli*_*wp2 10
你有两种方法:
new Promise((resolve, reject) => client.Get({thing, objects, properties}, function(err, response) {
  if(err) {
    return reject(err)
  }
  resolve(response)        
}))
Run Code Online (Sandbox Code Playgroud)
const grpc_promise = require('grpc-promise');;
grpc_promise.promisifyAll(client);
Run Code Online (Sandbox Code Playgroud)
然后,您可以将这个承诺的 gRPC 客户端传递给 GraphQL 上下文。(根据函数签名猜测您正在使用 GraphQL)。
然后您可以在 GraphQL 解析器中返回一个 Promise。
Client: (parent, args, context, info) =>{
  return context.client.Get({thing, objects, properties})
};
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           5823 次  |  
        
|   最近记录:  |