我是使用 promise 的新手,我注意到,为了捕获嵌套 promise 链中的错误,我需要对链中的每个 promise 调用 catch 方法。有没有更干净的方法来写这个?
poll.pollForCandidates().then((candidates) => {
let clientId = candidates[0].clientId;
poll.getUnprocessedCandidates({context, clientId, candidates})
.then((unprocessedCandidates) => {
console.log(unprocessedCandidates);
poll.addCandidatesToQueue(context, unprocessedCandidates)
.then((processedCandidates) => {
console.log(processedCandidates);
poll.addCandidatesToTable(processedCandidates)
.then((result) => {
console.log(result);
})
.catch((error) => {
console.log(error);
});
})
.catch((error) => {
console.log(error);
})
})
.catch((error) => {
console.log(error);
})
})
.catch(() => {
console.done(error);
});
};
Run Code Online (Sandbox Code Playgroud) 我正在尝试将Snap.svg包装为我的应用程序的服务.下面的代码有效,但这是正确的方法吗?
var svgService = angular.module("svgService", []);
svgService.factory("svgService", [
function () {
if (Snap) {
return Snap;
}
}
]);
Run Code Online (Sandbox Code Playgroud) 这是执行查询的路径:
userRouter.route("/new")
.post(function (req, res) {
var user = req.body;
pg.connect(connectionString, function (error, client, done) {
var queryString = "INSERT INTO Users (id, first_name, last_name) VALUES (" + "'" + [user.id, user.first_name, user.last_name].join("','") + "'" + ")";
console.log(queryString);
client.query(queryString, function (error, result) {
console.log(result.rows);
done();
});
});
});
Run Code Online (Sandbox Code Playgroud)
问题是我试图从第二个控制台引用的"结果"值基本上是空白的:
{
command: 'INSERT',
rowCount: 1,
oid: 0,
rows: [],
fields: [],
_parsers: [],
RowCtor: null,
rowAsArray: false,
_getTypeParser: [Function: bound ]
}
Run Code Online (Sandbox Code Playgroud)
不应该result.rows包含一个数组,其中包含一个表示我刚刚在数据库中创建的行的对象?
基本上,我需要运行带有json-server的Node / Express服务器,以模拟用于正在开发的测试Angular应用的RESTFUL API。问题是Google Chrome浏览器抛出错误,表明我遇到了CORS问题。我尝试以解决CORS问题的方式配置服务器。。。
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
Run Code Online (Sandbox Code Playgroud)
。。。无济于事。
如果不摆弄JSONP或以任何方式更改Angular代码,我还能做更多的事情吗?在Rails服务器上似乎工作正常。
编辑:正如许多人所建议的那样,我尝试使用cors模块来解决该问题,但这似乎也不起作用。这是我的server.js文件:
var express = require('express');
var app = express();
var path = require("path");
var jsonServer = require("json-server");
var databaseServer = jsonServer.create();
var cors = require("cors");
app.use(cors());
app.use("/", express.static(__dirname));
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
var object = {
"fighters": [
{
"id": 1, …Run Code Online (Sandbox Code Playgroud) 当我尝试连接到我根据 AWS“使用 Amazon RDS 创建并连接到 PostgreSQL 数据库”教程创建的 PostgreSQL 数据库实例时(https://aws.amazon.com/getting-started/ tutorials/create-connect-postgresql-db/),我收到一条错误消息:
[08001] 连接尝试失败。java.net.SocketTimeoutException: 连接超时。
数据库设置为允许所有端口和来自所有 IP 地址的传入和传出流量。我完全不知道如何让它工作,并已联系 AWS Support 征求他们的意见,但到目前为止,我所做的只是按照 AWS 教程中规定的说明进行操作——但无济于事。
有谁知道可能是什么问题?
编辑:我应该提到我的所有主机 URL、端口号、数据库名称等都已正确输入到 DataGrip 中,因此以上都不是问题。
我正在寻找一种在Ruby中过滤数组的快速方法,并且想知道该语言是否与JavaScrpt数组对象的本机过滤方法相对应。
javascript ×4
angularjs ×2
express ×2
postgresql ×2
amazon-rds ×1
cors ×1
ecmascript-6 ×1
node.js ×1
promise ×1
ruby ×1
svg ×1