- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试通过 nodejs 为我的 AWS AppSync 应用程序调用 Graphql 查询。我遇到的错误是
UnhandledPromiseRejectionWarning: Error: Network error: apollo_cache_inmemory_1.readQueryFromStore
这是我的index.js代码
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var config = {
AWS_ACCESS_KEY_ID: <ACCESS_KEY_ID>,
AWS_SECRET_ACCESS_KEY: <SECRET_KEY>,
HOST: '<HOST_URL>',
REGION: 'us-west-2',
PATH: '/graphql',
ENDPOINT: '<AWS_APPSYNC_ENDPOINT>',
};
config.ENDPOINT = "https://" + config.HOST + config.PATH;
exports.default = config;
global.localStorage = {
store: {},
getItem: function (key) {
return this.store[key]
},
setItem: function (key, value) {
this.store[key] = value
},
removeItem: function (key) {
delete this.store[key]
}
};
require('es6-promise').polyfill();
require('isomorphic-fetch');
// Require AppSync module
const AUTH_TYPE = "AWS_IAM";
const AWSAppSyncClient = require('aws-appsync').default;
const url = config.ENDPOINT;
const region = config.REGION;
const type = AUTH_TYPE.AWS_IAM;
// If you want to use API key-based auth
const apiKey = 'xxxxxxxxx';
// If you want to use a jwtToken from Amazon Cognito identity:
const jwtToken = 'xxxxxxxx';
// If you want to use AWS...
const AWS = require('aws-sdk');
AWS.config.update({
region: config.REGION,
credentials: new AWS.Credentials({
accessKeyId: config.AWS_ACCESS_KEY_ID,
secretAccessKey: config.AWS_SECRET_ACCESS_KEY
})
});
const credentials = AWS.config.credentials;
// Import gql helper and craft a GraphQL query
const gql = require('graphql-tag');
const query = gql(`
query {
getSample {
mobileNumber
}
}
`);
// Set up Apollo client
const client = new AWSAppSyncClient({
url: url,
region: region,
auth: {
type: type,
credentials: credentials,
}
});
client.hydrated().then(function a(client) {
client.query({query: query});
client.query({ query: query, fetchPolicy: 'network-only'}).then(function(data) {
console.log("data: " + queryResult);
})
});
完整的堆栈跟踪如下:
UnhandledPromiseRejectionWarning: Error: Network error: apollo_cache_inmemory_1.readQueryFromStore is not a function at new ApolloError (/Users/kanhaiagarwal/appsync1/node_modules/aws-appsync/node_modules/apollo-client/bundle.umd.js:124:32) at /Users/kanhaiagarwal/appsync1/node_modules/aws-appsync/node_modules/apollo-client/bundle.umd.js:1248:45 at /Users/kanhaiagarwal/appsync1/node_modules/aws-appsync/node_modules/apollo-client/bundle.umd.js:1680:21 at Array.forEach () at /Users/kanhaiagarwal/appsync1/node_modules/aws-appsync/node_modules/apollo-client/bundle.umd.js:1679:22 at Map.forEach () at QueryManager.broadcastQueries (/Users/kanhaiagarwal/appsync1/node_modules/aws-appsync/node_modules/apollo-client/bundle.umd.js:1672:26) at /Users/kanhaiagarwal/appsync1/node_modules/aws-appsync/node_modules/apollo-client/bundle.umd.js:1175:35 at (node:23377) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:23377) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
有人可以为此提出解决方案吗?
最佳答案
该问题是由于未提供 aws-appsync 包依赖于某些全局对象的 window
对象而导致的。这在 Node.js 环境中不存在,在脚本开头添加以下内容应该可以使其工作:
global.window = global.window || {
setTimeout: setTimeout,
clearTimeout: clearTimeout,
WebSocket: global.WebSocket,
ArrayBuffer: global.ArrayBuffer,
addEventListener: function () { },
navigator: { onLine: true }
};
这是 GitHub 问题,其中提出了答案:
https://github.com/awslabs/aws-mobile-appsync-sdk-js/issues/276#issuecomment-432983691
关于node.js - UnhandledPromiseRejectionWarning : Error: Network error: apollo_cache_inmemory_1. readQueryFromStore 不是函数 aws appsync nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52801864/
我有 await 语句,它们可能会引发错误,因此我在 try/catch 内执行它们。但是 try/catch 没有捕获它们,我收到警告: (node:4496) UnhandledPromiseRe
最近,我在ionic中创建了一个应用程序,我想在ios中对其进行测试。所以我运行命令ionic cordova emulate ios。但是,这给了我以下错误。 (节点:4200)UnhandledP
我正在尝试使用 node.js discord 模块制作一个机器人,当在 discord 中输入命令时,它会向用户发送私有(private)消息。该命令应该像这样使用 !rp 然后邮件将发送给收件人
我正在尝试调用一个异步方法。异步方法是: async connect() { this.pool = await mysql.createPool(this.conf);
我按议程包编写了一些代码,但在运行我的项目时遇到了 UnhandledPromiseRejectionWarning。 我的代码在这里: agenda.define('transferDBField'
我有一个代码: function () { return new Promise((resolve, reject) => { try { fetch(URL, { metho
以下是我在 graphql(apollo-server)服务器中的 onDisconnect 函数代码(但不是特定于 graphql 的)。它包含一个 postgres 事务,通过 DB 适配器使用。
我是 Javascript Promise 的新手。我正在尝试以基于 Promises 的方式执行 MySQL 查询,我已经挠头半个小时了,但我仍然找不到这段代码中的问题。我正在使用this arti
尝试从 localhost:3000/todos/在 mongodb 中创建数据后获取数据,我在 Node 中收到错误 [UnhandledPromiseRejectionWarning: 错误 [E
我收到以下错误: Houston we got an err at getGames in index.js (node:72197) UnhandledPromiseRejectionWarning
所以我正在使用 Express.JS 和 MongoDB 制作一个 Web 应用程序,当我尝试在本地运行它时,它可以工作,但是当我用我的 aws Ubuntu 20.04 机器运行它时,它给了我以下错
我在调用其他发出 axios 请求的函数的函数中处理 UnhandledPromiseRejectionWarning 时遇到问题。 const getCode = async () => { c
我对 Node JS 还很陌生,所以我有点挣扎。 我正在尝试使用 Google Drive 的 API 从我的 Node Js 代码读取文件。 我有以下代码 router.get('/', funct
我正在使用 Angular/Firebase 在 Ionic 中构建一个应用程序。 我想在我的 Android 设备上测试该应用程序,该设备以前运行良好。但是,最近我无法运行它,因为出现错误。 $ i
这个问题在这里已经有了答案: How is PromiseRejectionEvent triggered? (2 个答案) 关闭 3 年前。 如果我在拒绝 promise 后清除计时器 - 无论我
我的目标是使用 Node.js 从网站上抓取一些数据. 我已经设法仅使用request 包来抓取数据,但是我要抓取的站点具有动态内容,而request 只能抓取此动态数据。 所以我做了一些研究,发现要
我玩过 Mocha 测试。我注意到我的函数在少数地方引发了 “UnhandledPromiseRejectionWarning” 警告。它使脚本无法通过检查。 我无法在互联网上找到有用的示例来教授/展
最近,我在测试代码时经常遇到此错误。刚才我在尝试执行包含错误的同步代码时再次收到此错误: (async function() { const characterProfile = await Mo
我知道涉及 SO 上的 UnhandledPromiseRejectionWarning 问题的现有答案,但找到的答案似乎都与我的情况不充分匹配。基本上,我以为我知道如何处理 promise 。但这个
我当前的nodejs版本是:8.9.1 我正在尝试执行我的代码,但总是遇到此错误,尝试修复它,但总是出现相同的错误: (node:38) UnhandledPromiseRejectionWarnin
我是一名优秀的程序员,十分优秀!