我有一个返回jQuery承诺的函数.它看起来像这样:
addBooks(books: Array<Books>) {
return $.ajax({
url: '/Books/AddBooks/',
type: 'POST',
data: ko.toJSON(books),
contentType: 'application/json'
});
}
Run Code Online (Sandbox Code Playgroud)
我这样做,所以我可以重用这个函数和链承诺回调,如:
addBooks.done(() => { alert("Books added!"); })
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我想尽早摆脱addBooks并阻止访问服务器该怎么办?例如:
addBooks(books: Array<Books>) {
// An empty array was passed in for some reason.
// Theres nothing to add so dont try to POST
if (books <= 0) return null;
return $.ajax({
url: '/Books/AddBooks/',
type: 'POST',
data: ko.toJSON(books),
contentType: 'application/json'
});
}
Run Code Online (Sandbox Code Playgroud)
我的示例将无法编译,因为我的链式完成回调示例期望addBooks返回一个promise对象,而不是null.我怎样才能返回一个空的承诺(或者在这种情况下我应该返回的正确对象)?
使用JavaScript我将网页中的名称拉出来并以某种方式将它们串在一起(可能与数组一起).一旦我将所有名称收集在一起,我需要创建另一个字符串,该字符串提供名称的所有电子邮件地址.电子邮件地址不在网页上,所以我必须在我的脚本中以某种方式列出每个可能的thisName = thisEmail.我打算通过制作一个无数的if语句来解决这个问题,但我认为必须采用更有效的方式.有什么建议?
var x = getElementById("names");
var name = x.InnerHTML;
var email;
if (name == 'Steve'){ email == 'steve462@gmail.com'; }
if (name == 'Bob'){ email == 'duckhunter89@gmail.com'; }
....
Run Code Online (Sandbox Code Playgroud) foreach在foreach本身的情况下,我有一个循环在循环中断开.有没有办法try catch抛出异常然后继续循环?
这将运行几次,直到异常命中然后结束.
try {
foreach(b in bees) { //exception is in this line
string += b;
}
} catch {
//error
}
Run Code Online (Sandbox Code Playgroud)
这根本不会运行,因为异常是在foreach的条件下
foreach(b in bees) { //exception is in this line
try {
string += b;
} catch {
//error
}
}
Run Code Online (Sandbox Code Playgroud)
我知道你们中的一些人会问这是怎么回事,所以这就是:PrincipalOperationException抛出异常是因为Principal在GroupPrincipal(蜜蜂)中找不到(我的例子中的b ).
编辑:我添加了以下代码.我还发现一个组成员指向一个不再存在的域.我通过删除该成员轻松解决了这个问题,但我的问题仍然存在.你如何处理在foreach条件下抛出的异常?
PrincipalContext ctx = new PrincipalContext(ContextType.domain);
GroupPrincipal gp1 = GroupPrincipal.FindByIdentity(ctx, "gp1");
GroupPrincipal gp2 = GroupPrincipal.FindByIdentity(ctx, "gp2");
var principals = gp1.Members.Union(gp2.Members);
foreach(Principal principal in principals) …Run Code Online (Sandbox Code Playgroud) 我在Visual Studio 2013中有一个SharePoint 2010解决方案.每次关闭并重新打开Visual Studio时,都会在解决方案中添加一个新功能,其中包含一个列表.该列表已从其应该处于的另一个功能中删除.它始终是相同的列表.一旦我打开解决方案,这会在我执行任何操作之前弹出"输出"窗口...
A new feature Feature2 has been added to the project Solution
C:\Code\Solution\Package\Package.package (0,0): Added Feature2 to Package
是什么造成的?
我尝试过以下方法:
我希望每次项目运行时都运行一个npm脚本.此命令将启动一个触发webpack热模块交换的手表.它看起来像这样:
npm run watch:dev:hmr
我知道我可以从帖子和预构建事件中做到这一点,但我不想在每次构建后运行一个手表.我只想在启动项目的新实例之前运行它,理想情况下,在实例停止时停止它.
可以这样做吗?
这有效,但我不知道为什么.在function capIn()我看来,线$botcap.slideDown("slow")应该滑下div.它将它滑起来.如果我尝试使用.slideUp()没有任何事情发生,好像它试图滑下来.任何人都可以向我解释这个吗?
$(".slide").hover(capIn, capOut);
function capIn(){
//slide top caption down
var $topcap = $(this).children(".topcap");
$topcap.slideDown("slow");
//slide bottom caption up
//!! Why does slideDown slide caption up here?
var $botcap = $(this).children(".botcap");
$botcap.slideDown("slow")
}
function capOut(){
//slide top back up
var $topcap = $(this).children(".topcap");
$topcap.slideUp("slow");
//slide bottom back down
var $botcap = $(this).children(".botcap");
$botcap.slideUp("slow");
}
Run Code Online (Sandbox Code Playgroud) 我无法从我的网络应用程序中删除 Facebook 帖子。现在我知道Facebook 文档和其他 SO 帖子说要这样做:
You can delete objects in the graph by issuing HTTP DELETE requests to
the object URLs, i.e,
DELETE https://graph.facebook.com/ID?access_token=... HTTP/1.1
Run Code Online (Sandbox Code Playgroud)
但由于我是个菜鸟,我不完全理解用 HTTP 请求删除的简短解释。由于在我尝试时它不起作用,我假设简单地重定向到上面示例中形成的 url 不会删除任何内容。这意味着我现在必须了解 Web 开发的一些新领域... HTTP 请求。
这些是如何在 php 中完成的?在PHP手册的心不是帮不到多少。
我尝试了许多不同的变体:
$facebook->api($post_url, 'DELETE', array('method'=> 'delete') );
Run Code Online (Sandbox Code Playgroud)
我传递的 URL 是'/post_id'. 将post_id在创建后正在捕获并存储到数据库中。此 ID 与$_GET['story_fbid']可在任何帖子永久链接上找到的ID 匹配。也许这不是正确的 ID?我正在使用以下内容检索 ID:
//post to wall
$postResult = $facebook->api($post_url, 'post', $msg_body );
//capture the id of the post
$this->fb_post_id …Run Code Online (Sandbox Code Playgroud) 按照此处和此处概述的过程,我能够设置 TestRunParameter 并在运行时在单元测试中访问它。然后我在编码的 UI 测试中重复了完全相同的过程,但无法访问属性。
我的 .runsettings 文件:
<RunSettings>
<TestRunParameters>
<Parameter name="webAppUrl" value="http://localhost" />
</TestRunParameters>
</RunSettings>
Run Code Online (Sandbox Code Playgroud)
我的测试方法:
[TestMethod]
public void MyTest1()
{
// This throws an error because Properties["webAppUrl"] is null
string webAppUrl = TestContext.Properties["webAppUrl"].ToString();
// etc...
}
Run Code Online (Sandbox Code Playgroud)
编码 UI 测试是否需要额外配置才能访问这些运行时属性?
编辑:我注意到在单元测试的上下文中, TestContext 是Microsoft.VisualStudio.TestPlatform.MSTestFramework.TestContextImplementation. 在编码的 UI 测试中,TestContext 是Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestAdapterContext.
我需要发送this到capIn()和capOut()函数,以便我可以定位正确.slide的子div.我如何传递this给一个函数.this将是徘徊.
$(".slide").hover(function(){capIn();capOut();});
Run Code Online (Sandbox Code Playgroud) 我的项目的结构如下:
MyScript.ps1
classes\
Car.ps1
Tesla.ps1
Run Code Online (Sandbox Code Playgroud)
Car.ps1是Tesla.ps1的基类。我试图在Tesla.ps1中这样定义Tesla:
. "$PSScriptRoot\Car.ps1"
class Tesla : Car
{
}
Run Code Online (Sandbox Code Playgroud)
MyScript.ps1需要使用Tesla类,但不必知道它是从Car继承的。
. "$PSScriptRoot\classes\Tesla.ps1"
$tesla = [Tesla]::new()
Run Code Online (Sandbox Code Playgroud)
点采购classes\Tesla.ps1工作正常,但从Tesla文件中抛出此错误:
找不到类型[汽车]
如果我以正确的顺序将所有文件导入MyScript.ps1,则可以正常工作。例:
. "$PSScriptRoot\classes\Car.ps1"
. "$PSScriptRoot\classes\Tesla.ps1"
$tesla = [Tesla]::new()
Run Code Online (Sandbox Code Playgroud)
这很麻烦,尤其是随着复杂性的增长。我的网点采购不正确吗?有没有更好的方法可以使用PSModulePath中没有的相对路径导入自定义PowerShell类?
javascript ×4
jquery ×3
hover ×2
ajax ×1
azure-devops ×1
c# ×1
class ×1
exception ×1
facebook ×1
foreach ×1
function ×1
if-statement ×1
node.js ×1
npm ×1
php ×1
powershell ×1
sharepoint ×1
slidedown ×1
slideup ×1
this ×1
try-catch ×1
typescript ×1
webpack ×1