我已经把Promise搞砸了,但是我对他们很陌生,我无法弄清楚如何正确地做到这一点.目前,Promise没有意义,因为它不会等到异步$.get完成.
基本上,每次foreach迭代都有自己的$.get功能,我需要将它们全部完成,然后继续使用"...获取albumart"的部分console.log.
$.get(id,function(data) {
//(there's some code here)
var getZippyUrls = new Promise(function(resolve) {
zippyarray.forEach(function(zippy) {
//(more code)
$.get(zippy.full, function(data) {
//^This is the foreach of $.gets
//(code's here)
});
resolve(zippyarray);
});
});
//This is my failed Promise ->
getZippyUrls.then(function(response) {
console.log("WE'RE OUT " + response.length);
response.foreach(function(d) {
console.log("Promise"+d.media);
});
console.log('eyyyyyy');
});
console.log("...gets albumart");
//Now after the previous stuff is done, move on
Run Code Online (Sandbox Code Playgroud) 我正在使用Cordova构建一个应用程序,我正在尝试构建一个Windows应用程序.使用Cordova CLI没有产生任何好结果,所以我尝试在platforms/windows文件夹中构建Visual Studio解决方案.
问题是它无法构建并返回一长串错误,所有这些都只是说出类似的东西:
TS6054 Build:File'C:/ Code/ProjectClosr/Cordova App/platforms/windows/www/Gruntfile.js'具有不受支持的扩展名.唯一支持的扩展名是".ts",".tsx",".d.ts".
现在,事实证明它认为所有这些文件都是TypeScript文件,即使它们只是自述文件,JavaScript文件,CSS文件等,并且它之所以这样做是因为由于某种原因,其属性中的所有这些文件都具有"包行动"设置到TypeScriptCompile.现在,我没有明显地创建这个解决方案,它是由Cordova自动生成的,但我需要一种方法来解决这个问题,通过某种方式将所有这些属性的"Package Action"属性设置回其真实值,而不是一切都是TypeScript资源.
我该怎么做呢?
visual-studio cordova typescript win-universal-app visual-studio-2015
可以使用 终止实际的 HTTP 服务器实例server.close(callback),但我不确定任何挂起的 WebSocket 操作(通过 WebSocket 运行的突变或查询)会发生什么。由于 http.Server 对 WebSocket 操作一无所知,它可能会忽略它们。如何正确确保当收到 SIGTERM 时,服务器停止接受新请求/webSocket 连接,完成挂起的连接然后关闭?
用谷歌找不到任何关于此的信息。
我对哪种方式更好以及使用哪种方式感到困惑.当然,如果你总能得到HttpContext.GetOwinContext().Get() ; 那为什么甚至创建一个新的ApplicationDbContext并冒险加倍对象等?
注意:我在这里专门谈论Web应用程序.
在Chrome打包的应用中,您可以使用它在应用内加载外部网页.有没有办法让他们加载本地文件(打包应用程序内的html文件)?我不能使用iframe,因为iframe不支持外部资源(脚本,图像,等等).
VueRouter 总是在子路由的路径之前添加一个尾部斜杠。所以可以说我有一个这样的路由配置:
const routes = [
path: '/home',
components: {
default: HomeBase
},
children: [
{
path: '',
component: HomeIndex,
name: 'home.index'
},
{
path: ':aid',
component: HomeArticle,
name: 'home.article'
}
]
]
Run Code Online (Sandbox Code Playgroud)
我希望路线像这样工作:
但是 VueRouter 在访问子路由时总是在父路由路径上强制使用尾部斜杠,因此路由的工作方式如下:
这对我不起作用,因为我正在使用具有特定 SEO 要求且不需要尾部斜杠的应用程序。
请注意,我使用命名路由来生成 URL 并在路由之间移动,因此虽然我可以直接链接到“/home”,但我想使用路由的名称(“home.index”),因此代码更加枯燥。我可以将路径存储在某个地方的常量中,但这样做的缺点是您不能在以编程方式导航时将 'params' 道具与 'path' 道具一起使用。
我可以将 HomeIndex 完全拆分为单独的路径,因此它不是子项,但我需要将 HomeIndex 和 HomeArticle 都加载到根 HomeBase 组件中。
任何想法我怎么能做到这一点?也许通过一些 VueRouter 钩子或插件?
我制作的 Chrome 应用程序对我来说非常好,但另一个用户Uncaught ReferenceError: Promise is not defined在启动时遇到错误。出于某种原因,它不明白 Promise 是什么。代码在我这边工作得很好,我以前从来没有遇到过这个错误,但用户每次都会得到它。这里可能是什么问题?
我一直在网上寻找解决方案,但没有找到任何有价值的东西。基本上,我正在寻找一种工具或某种方法来同时在多个目录中启动 TypeScript 文件观看/编译。
我有一个包含范围 NPM 包(@test/one、@test/two、@test/ Three 等)的 monorepo,我想同时观看/编译所有这些包。
看起来 TS 并不支持这一点,而且也没有任何工具可以做到这一点。我发现的最接近的是nodemon,我可以让它同时监视多个目录,但它只支持在单个位置执行脚本/二进制文件,而我需要它在更改时在每个监视的目录中执行“tsc”。
我可以用 nodemon 做的最好的事情如下,但当然这不是一个很好的方法,因为它会编译所有包,即使只有一个更改:
npx nodemon --watch test-shared-api --watch test-shared-redux --watch test-shared-types -e js,ts,jsx,tsx --exec "npx tsc --build test-shared-api/tsconfig.json && npx tsc --build test-shared-types/tsconfig.json && npx tsc -build test-shared-redux/tsconfig.json"
Run Code Online (Sandbox Code Playgroud)
同时,我可以在 package.json 中执行以下操作,这更好,但仍然可以做得更好:
"scripts": {
"ts-watch-shared-types": "tsc -p packages/@test-shared/test-shared-types/tsconfig.json -w",
"ts-watch-shared-api": "tsc -p packages/@test-shared/test-shared-api/tsconfig.json -w",
"ts-watch-shared-redux": "tsc -p packages/@test-shared/test-shared-redux/tsconfig.json -w",
"ts-shared-watch": "concurrently -k -n w: npm:ts-watch-shared-*"
},
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个异步功能,我做了多次(2),但由于某种原因,承诺陷入决心.它执行resolve(),但不执行任何操作.
这是函数(基本上是从URL创建一个blob):
function getBlobAt(url, callback) {
console.log("New getBlobAt Call");
return new Promise(function(resolve) {
console.log("getBlobAt Promise Created");
window.URL = window.URL || window.webkitURL;
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.onload = function () {
console.log("getBlobAt promise completed, resolving...");
var burl = window.URL.createObjectURL(this.response);
console.log("getBlobAt promise completed, resolving2...");
resolve(burl);
console.log("getBlobAt promise completed, resolving3...");
//window.URL.revokeObjectURL(burl); //DO THIS WHEN LOADING NEW SONG
};
console.log("getBlobAt xhr.send() and callback");
xhr.send();
callback(xhr);
//return xhr;
});
}
Run Code Online (Sandbox Code Playgroud)
这是任务图:
var taskstrings = [endmp3, albumart];
var getBlobTasks …Run Code Online (Sandbox Code Playgroud) 所以我试图用来自 MSSQL 查询的数据填充 DataTable,但由于某种原因它完全拒绝工作,这让我很恼火。
当我使用 SqlDataReader 和 Read() 遍历结果时,我得到了结果,即使当我尝试用 SqlDataAdapter 填充 DataTable 时,查询也会出现在 SQL Profiler 上,但没有返回任何数据。
我不知道我的代码是什么,但也许你可以弄清楚:
try
{
// Global variables
var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
var textString = "Pas?kums {0} s?kas p?c {1}!";
var linkString = @"/Event/Index/{0}";
using (SqlConnection conn = new SqlConnection(connectionString))
{
// Set variables
var findIn24HrsEventsCmd = new SqlCommand(@"
SELECT adm.UserID, adm.EventID FROM [dbo].[EventAdmissions] AS adm WHERE EventID IN
(
SELECT EventID FROM [dbo].[Events]
WHERE DATEDIFF(hour, @date, StartTime) BETWEEN 0 AND 24
)
AND …Run Code Online (Sandbox Code Playgroud) javascript ×5
promise ×3
c# ×2
typescript ×2
apollo ×1
asp.net ×1
asp.net-mvc ×1
asynchronous ×1
cordova ×1
datatable ×1
express ×1
foreach ×1
jquery ×1
loops ×1
monorepo ×1
node.js ×1
npm ×1
resolve ×1
sigterm ×1
sql-server ×1
vue-router ×1
vue.js ×1
webview ×1